// export default（一个js文件中只能有一个）  与 export const(可以有多个) 的区别
// export default 导出的内容 引入时可以修改名称 而且不用加大括号
// export const 导出的内容 引入时 不可以修改名称，而且必须加上大括号
// 在 pinia 中创建 store 实例 defineStore()
import {defineStore} from "pinia";
import {
	ref, computed
} from "vue";
// 两个参数，第一个参数 给你的 store 实例起个名字
// 第二个参数 是相关配置（选项式） state(状态)/getters(对于状态进行筛选过滤)/actions(定义修改状态的方法)
export const useUserStore = defineStore('user', {
	state: () => {
		return {
			login: undefined,
			count : 1
		}
	},
	getters: {
		getLogin(state) {
			return state.login ? state.login : {username: 'admin'}
		}
	},
	actions: {
		setLogin(user) {
			console.log("setLogin==", user)
			this.login = user
		}
	}
})

export const useGoodsStore = defineStore('goods', () => {
	const goods = ref() // 相当于选项式里面的 state中定义的内容
	const getGoods = computed(() => {
		return goods.value ? goods : ref({name: '魅族'})
	}) // 相当于 选项式中的 getters
	function setGoods(g) {
		goods.value = g
	}
	return {
		goods,
		getGoods,
		setGoods
	}
})